home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / boot / netBoot.new / dev / xdcreg.h < prev    next >
C/C++ Source or Header  |  1990-12-19  |  2KB  |  77 lines

  1. /*    @(#)xdcreg.h 1.5 86/04/21 SMI    */
  2.  
  3. /*
  4.  * Copyright (c) 1986 by Sun Microsystems, Inc.
  5.  */
  6. #ifndef _XDCREG_
  7. #define _XDCREG_
  8.  
  9. /*
  10.  * Common Xylogics 751/772 declarations
  11.  */
  12.  
  13. /*
  14.  * I/O space registers - byte accesses only, but on word boundaries.
  15.  */
  16. struct xddevice {
  17.     u_char :8;
  18.     u_char xd_iopbaddr1;    /* 1,3,5,7 - iopb address */
  19.     u_char :8;
  20.     u_char xd_iopbaddr2;
  21.     u_char :8;
  22.     u_char xd_iopbaddr3;
  23.     u_char :8;
  24.     u_char xd_iopbaddr4;
  25.     u_char :8;
  26.     u_char xd_modifier;    /* 9 - iopb address modifier */ 
  27.     u_char :8;
  28.     u_char xd_csr;        /* b - controller status register */
  29.     u_char :8;
  30.     u_char xd_fatal;    /* d - fatal error register */
  31. };
  32.  
  33. /*
  34.  * Macro to massage an address into byte sized chunks.
  35.  */
  36. #define XDOFF(a, byte)    (((int)(a) >> (8 * byte)) & 0xff)
  37.  
  38. /*
  39.  * xd_csr bits
  40.  */
  41. #define XD_BUSY        0x80    /* r - operation in progress */
  42. #define XD_FERR        0x40    /* r - fatal error encountered */
  43. #define XD_ENAM        0x20    /* w - enable maintanence mode */
  44. #define XD_MACT        0x20    /* r - maintanence mode active */
  45. #define XD_RST        0x08    /* w - controller reset */
  46. #define XD_RACT        0x08    /* r - controller reset active */
  47. #define XD_AIO        0x04    /* w - add iopb to active list */
  48. #define XD_AIOP        0x04    /* r - iopb addition pending */
  49. #define XD_CLRIO    0x02    /* w - clear registers active */
  50. #define XD_RIO        0x02    /* r - registers are active */
  51. #define XD_CLRBS    0x01    /* w - clear registers busy */
  52. #define XD_RBS        0x01    /* r - registers are busy */
  53.  
  54. /*
  55.  * drive status bits
  56.  */
  57. #define XD_READY    0x01
  58. #define XD_ONCYL    0x02
  59. #define XD_WPROT    0x10
  60. #define XD_DPBUSY    0x80
  61. #define XD_SKERR    0x04
  62. #define XD_DFAULT    0x08
  63.  
  64. /*
  65.  * Miscellaneous defines
  66.  */
  67. #define XD_ADDRMOD24    0x3d    /* standard supervisory data modifier */
  68. #define XD_ADDRMOD32    0x0d    /* extended supervisory data modifier */
  69.  
  70. /*
  71.  * Controller types
  72.  */
  73. #define XDC_751        0x51
  74. #define XDC_772        0x72
  75.  
  76. #endif _XDCREG_
  77.